Cos'è cherry picking?
Il cherry picking è una tecnica di controllo della versione che permette di selezionare commit specifici da un ramo e applicarli a un altro. È diverso dal merge, che unisce tutti i cambiamenti da un ramo all'altro.
Quando usare il cherry picking:
- Correggere bug specifici in rami multipli: Se un bugfix deve essere applicato a diverse versioni del software (es. rami
release/1.0
e release/1.1
), il cherry picking permette di evitare di unire l'intero ramo di sviluppo principale.
- Riportare una funzionalità su un ramo precedente: Se una funzionalità è stata sviluppata su un ramo e si desidera utilizzarla in un altro ramo, ma non si vuole unire l'intero ramo di sviluppo.
- Risolvere conflitti limitati: Invece di unire un intero ramo con molti conflitti, si possono selezionare i commit con cambiamenti necessari e risolverli singolarmente.
Come funziona il cherry picking:
- Il comando di cherry picking prende il cambiamento introdotto da un commit specifico.
- Crea un nuovo commit sul ramo di destinazione.
- Questo nuovo commit copia il cambiamento del commit originale.
Considerazioni importanti:
- Cronologia: Il cherry picking altera la cronologia%20del%20repository perché crea nuovi commit anziché unire rami esistenti. Ciò può portare a confusione se non usato con cautela.
- Conflitti: Il cherry picking può generare conflitti se il codice che si sta cercando di applicare dipende da altre modifiche non presenti nel ramo di destinazione. È necessario risolvere questi conflitti manualmente.
- Commit duplicati: È importante evitare di cherry pickare lo stesso commit più volte nello stesso ramo, creando commit duplicati.
- Alternative: Prima di usare il cherry picking, valutare se un merge regolare o una strategia di branching più appropriata possa essere una soluzione migliore. Il cherry picking è spesso considerato una tecnica da usare con parsimonia.